create table orders ( order_id integer not null primary key , customer_id integer not null , order_datetime date not null , status varchar2(10) not null ); BEGIN FOR i IN 100..10000 LOOP INSERT INTO orders VALUES(i, 999+i, SYSDATE, 'A'); END LOOP; COMMIT; END; / SELECT * FROM orders; DECLARE v_data orders%ROWTYPE; v_qry VARCHAR2(1000); BEGIN FOR i IN 100 .. 9000 LOOP v_qry := 'SELECT * FROM orders WHERE order_id = ' || i; EXECUTE IMMEDIATE v_qry INTO v_data; -- dbms_output.put_line(v_data.order_id || ',' || v_data.customer_id); END LOOP; END; / DECLARE v_data orders%ROWTYPE; BEGIN FOR i IN 100..9000 LOOP EXECUTE IMMEDIATE 'SELECT * FROM orders WHERE order_id = :1' INTO v_data USING i; --dbms_output.put_line(v_data.order_id||','||v_data.customer_id); END LOOP; END; /